1   /*
2    * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package sun.security.tools;
27  
28  /**
29   * <p> This class represents the <code>ResourceBundle</code>
30   * for JarSigner.
31   *
32   */
33  public class JarSignerResources extends java.util.ListResourceBundle {
34  
35      private static final Object[][] contents = {
36  
37          // shared (from jarsigner)
38          {"SPACE", " "},
39          {"2SPACE", "  "},
40          {"6SPACE", "      "},
41          {"COMMA", ", "},
42  
43          {"provName.not.a.provider", "{0} not a provider"},
44          {"signerClass.is.not.a.signing.mechanism", "{0} is not a signing mechanism"},
45          {"jarsigner.error.", "jarsigner error: "},
46          {"Illegal.option.", "Illegal option: "},
47          {".keystore.must.be.NONE.if.storetype.is.{0}",
48                  "-keystore must be NONE if -storetype is {0}"},
49          {".keypass.can.not.be.specified.if.storetype.is.{0}",
50                  "-keypass can not be specified if -storetype is {0}"},
51          {"If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified",
52                  "If -protected is specified, then -storepass and -keypass must not be specified"},
53          {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
54                   "If keystore is not password protected, then -storepass and -keypass must not be specified"},
55          {"Usage.jarsigner.options.jar.file.alias",
56                  "Usage: jarsigner [options] jar-file alias"},
57          {".jarsigner.verify.options.jar.file.alias.",
58                  "       jarsigner -verify [options] jar-file [alias...]"},
59          {".keystore.url.keystore.location",
60                  "[-keystore <url>]           keystore location"},
61          {".storepass.password.password.for.keystore.integrity",
62              "[-storepass <password>]     password for keystore integrity"},
63          {".storetype.type.keystore.type",
64                  "[-storetype <type>]         keystore type"},
65          {".keypass.password.password.for.private.key.if.different.",
66                  "[-keypass <password>]       password for private key (if different)"},
67          {".certchain.file.name.of.alternative.certchain.file",
68                  "[-certchain <file>]         name of alternative certchain file"},
69          {".sigfile.file.name.of.SF.DSA.file",
70                  "[-sigfile <file>]           name of .SF/.DSA file"},
71          {".signedjar.file.name.of.signed.JAR.file",
72                  "[-signedjar <file>]         name of signed JAR file"},
73          {".digestalg.algorithm.name.of.digest.algorithm",
74                  "[-digestalg <algorithm>]    name of digest algorithm"},
75          {".sigalg.algorithm.name.of.signature.algorithm",
76                  "[-sigalg <algorithm>]       name of signature algorithm"},
77          {".verify.verify.a.signed.JAR.file",
78                  "[-verify]                   verify a signed JAR file"},
79          {".verbose.suboptions.verbose.output.when.signing.verifying.",
80                  "[-verbose[:suboptions]]     verbose output when signing/verifying."},
81          {".suboptions.can.be.all.grouped.or.summary",
82                  "                            suboptions can be all, grouped or summary"},
83          {".certs.display.certificates.when.verbose.and.verifying",
84                  "[-certs]                    display certificates when verbose and verifying"},
85          {".tsa.url.location.of.the.Timestamping.Authority",
86                  "[-tsa <url>]                location of the Timestamping Authority"},
87          {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
88                  "[-tsacert <alias>]          public key certificate for Timestamping Authority"},
89          {".altsigner.class.class.name.of.an.alternative.signing.mechanism",
90                  "[-altsigner <class>]        class name of an alternative signing mechanism"},
91          {".altsignerpath.pathlist.location.of.an.alternative.signing.mechanism",
92                  "[-altsignerpath <pathlist>] location of an alternative signing mechanism"},
93          {".internalsf.include.the.SF.file.inside.the.signature.block",
94                  "[-internalsf]               include the .SF file inside the signature block"},
95          {".sectionsonly.don.t.compute.hash.of.entire.manifest",
96                  "[-sectionsonly]             don't compute hash of entire manifest"},
97          {".protected.keystore.has.protected.authentication.path",
98                  "[-protected]                keystore has protected authentication path"},
99          {".providerName.name.provider.name",
100                 "[-providerName <name>]      provider name"},
101         {".providerClass.class.name.of.cryptographic.service.provider.s",
102                 "[-providerClass <class>     name of cryptographic service provider's"},
103         {".providerArg.arg.master.class.file.and.constructor.argument",
104                 "  [-providerArg <arg>]] ... master class file and constructor argument"},
105         {".strict.treat.warnings.as.errors",
106                 "[-strict]                   treat warnings as errors"},
107         {"Option.lacks.argument", "Option lacks argument"},
108         {"Please.type.jarsigner.help.for.usage", "Please type jarsigner -help for usage"},
109         {"Please.specify.jarfile.name", "Please specify jarfile name"},
110         {"Please.specify.alias.name", "Please specify alias name"},
111         {"Only.one.alias.can.be.specified", "Only one alias can be specified"},
112         {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.",
113                  "This jar contains signed entries which is not signed by the specified alias(es)."},
114         {"This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.",
115                   "This jar contains signed entries that's not signed by alias in this keystore."},
116         {"s", "s"},
117         {"m", "m"},
118         {"k", "k"},
119         {"i", "i"},
120         {".and.d.more.", "(and %d more)"},
121         {".s.signature.was.verified.",
122                 "  s = signature was verified "},
123         {".m.entry.is.listed.in.manifest",
124                 "  m = entry is listed in manifest"},
125         {".k.at.least.one.certificate.was.found.in.keystore",
126                 "  k = at least one certificate was found in keystore"},
127         {".i.at.least.one.certificate.was.found.in.identity.scope",
128                 "  i = at least one certificate was found in identity scope"},
129         {".X.not.signed.by.specified.alias.es.",
130                 "  X = not signed by specified alias(es)"},
131         {"no.manifest.", "no manifest."},
132         {".Signature.related.entries.","(Signature related entries)"},
133         {".Unsigned.entries.", "(Unsigned entries)"},
134         {"jar.is.unsigned.signatures.missing.or.not.parsable.",
135                 "jar is unsigned. (signatures missing or not parsable)"},
136         {"jar.verified.", "jar verified."},
137         {"jarsigner.", "jarsigner: "},
138         {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
139                 "signature filename must consist of the following characters: A-Z, 0-9, _ or -"},
140         {"unable.to.open.jar.file.", "unable to open jar file: "},
141         {"unable.to.create.", "unable to create: "},
142         {".adding.", "   adding: "},
143         {".updating.", " updating: "},
144         {".signing.", "  signing: "},
145         {"attempt.to.rename.signedJarFile.to.jarFile.failed",
146                 "attempt to rename {0} to {1} failed"},
147         {"attempt.to.rename.jarFile.to.origJar.failed",
148                 "attempt to rename {0} to {1} failed"},
149         {"unable.to.sign.jar.", "unable to sign jar: "},
150         {"Enter.Passphrase.for.keystore.", "Enter Passphrase for keystore: "},
151         {"keystore.load.", "keystore load: "},
152         {"certificate.exception.", "certificate exception: "},
153         {"unable.to.instantiate.keystore.class.",
154                 "unable to instantiate keystore class: "},
155         {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
156                 "Certificate chain not found for: {0}.  {1} must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain."},
157         {"File.specified.by.certchain.does.not.exist",
158                 "File specified by -certchain does not exist"},
159         {"Cannot.restore.certchain.from.file.specified",
160                 "Cannot restore certchain from file specified"},
161         {"Certificate.chain.not.found.in.the.file.specified.",
162                 "Certificate chain not found in the file specified."},
163         {"found.non.X.509.certificate.in.signer.s.chain",
164                 "found non-X.509 certificate in signer's chain"},
165         {"incomplete.certificate.chain", "incomplete certificate chain"},
166         {"Enter.key.password.for.alias.", "Enter key password for {0}: "},
167         {"unable.to.recover.key.from.keystore",
168                 "unable to recover key from keystore"},
169         {"key.associated.with.alias.not.a.private.key",
170                 "key associated with {0} not a private key"},
171         {"you.must.enter.key.password", "you must enter key password"},
172         {"unable.to.read.password.", "unable to read password: "},
173         {"certificate.is.valid.from", "certificate is valid from {0} to {1}"},
174         {"certificate.expired.on", "certificate expired on {0}"},
175         {"certificate.is.not.valid.until",
176                 "certificate is not valid until {0}"},
177         {"certificate.will.expire.on", "certificate will expire on {0}"},
178         {".CertPath.not.validated.", "[CertPath not validated: "},
179         {"requesting.a.signature.timestamp",
180                 "requesting a signature timestamp"},
181         {"TSA.location.", "TSA location: "},
182         {"TSA.certificate.", "TSA certificate: "},
183         {"no.response.from.the.Timestamping.Authority.",
184                 "no response from the Timestamping Authority. When connecting"
185                 + " from behind a firewall an HTTP or HTTPS proxy may need to"
186                 + " be specified. Supply the following options to jarsigner:"},
187         {"or", "or"},
188         {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
189                 "Certificate not found for: {0}.  {1} must reference a valid KeyStore entry containing an X.509 public key certificate for the Timestamping Authority."},
190         {"using.an.alternative.signing.mechanism",
191                 "using an alternative signing mechanism"},
192         {"entry.was.signed.on", "entry was signed on {0}"},
193         {"Warning.", "Warning: "},
194         {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
195                 "This jar contains unsigned entries which have not been integrity-checked. "},
196         {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
197                 "This jar contains entries whose signer certificate has expired. "},
198         {"This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.",
199                 "This jar contains entries whose signer certificate will expire within six months. "},
200         {"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
201                 "This jar contains entries whose signer certificate is not yet valid. "},
202         {"Re.run.with.the.verbose.option.for.more.details.",
203                 "Re-run with the -verbose option for more details."},
204         {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
205                 "Re-run with the -verbose and -certs options for more details."},
206         {"The.signer.certificate.has.expired.",
207                 "The signer certificate has expired."},
208         {"The.signer.certificate.will.expire.within.six.months.",
209                 "The signer certificate will expire within six months."},
210         {"The.signer.certificate.is.not.yet.valid.",
211                 "The signer certificate is not yet valid."},
212         {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
213                  "The signer certificate's KeyUsage extension doesn't allow code signing."},
214         {"The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
215                  "The signer certificate's ExtendedKeyUsage extension doesn't allow code signing."},
216         {"The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
217                  "The signer certificate's NetscapeCertType extension doesn't allow code signing."},
218         {"This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
219                  "This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing."},
220         {"This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
221                  "This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing."},
222         {"This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
223                  "This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing."},
224         {".{0}.extension.does.not.support.code.signing.",
225                  "[{0} extension does not support code signing]"},
226         {"The.signer.s.certificate.chain.is.not.validated.",
227                 "The signer's certificate chain is not validated."},
228         {"This.jar.contains.entries.whose.certificate.chain.is.not.validated.",
229                  "This jar contains entries whose certificate chain is not validated."},
230     };
231 
232     /**
233      * Returns the contents of this <code>ResourceBundle</code>.
234      *
235      * <p>
236      *
237      * @return the contents of this <code>ResourceBundle</code>.
238      */
239     public Object[][] getContents() {
240         return contents;
241     }
242 }